<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        
    </style>
</head>
<body>
    
</body>
<script>

    // var msg = "hello world"

    // function fn(){
    //     console.log(this.msg)
    // }

    // fn();

    // var obj = {
    //     msg:"hello obj",
    //     show:fn
    // }
    // obj.show()


    // setTimeout(obj.show, 500);

    // myTimeout(obj.show)

    // function myTimeout(a){
    //     a()
    // }

    // var obj2 = {
    //     msg:"hello obj2"
    // }

    // // 改变this指向，第一个参数

    // // 返回新函数，需要手动执行
    // fn.bind(obj2)()

    // // 改变this之后，直接执行
    // fn.call(obj2)
    // fn.apply(obj2)


    var obj = {}

    function fn(a,b,c){
        console.log("this：", this)
        console.log("a：", a)
        console.log("b：", b)
        console.log("c：", c)
    }

    fn("hello")

    fn.bind(obj, 10, 20, 30)()

    fn.call(obj, 10, 20, 30)

    fn.apply(obj, [10, 20, 30])



</script>
</html>